package com.boatAnchorAssistant.service.service.in;

import javax.validation.Valid;
import nirvana.core.domains.vo.PageResult;
import com.boatAnchorAssistant.pojo.param.tenant.*;
import com.boatAnchorAssistant.pojo.vo.tenant.*;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;


/**
 * 【描 述】：企业服务
 * 【环 境】：J2SE
 * 【详 细】：
 *
 */
public interface TenantService {

    /**
     * 创建企业
     * @param param
     */
    void createTenant(CreateTenantParam param);

    /**
     * 修改企业
     * @param param
     */
    void editTenant(EditTenantParam param);

    /**
     * 移除企业
     * @param id
     */
    void removeTenant(Long id);

    /**
     * 启动/禁用企业
     * @param id
     */
    void enabledTenant(Long id);

    /**
     * 获取企业详情
     * @param id
     * @return
     */
    GetTenantVo getTenant(Long id);

    /**
     * 获取企业列表
     * @param param
     * @return
     */
    PageResult<GetTenantListVo> getTenantList(GetTenantListParam param);


    /**
     * 获取企业下拉列表
     *
     * @param param
     * @return
     */
    List<GetTenantDownListVo> getTenantDownList(GetTenantDownListParam param);


    /**
     * 部门树型
     * @param param
     * @return
     */
    List<TenantTreeVo> getTenantTree(@RequestBody @Valid GetTenantTreeParam param);

}